﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Conexion;
using System.Data.SqlClient;
using AccesoDatos.Objetos;

namespace AccesoDatos.Manejador
{
    public class Manejador_Prestamos_Autoriza
    {
        ClsConexion conexion = new ClsConexion();
        public int id_actual;
        public DateTime fecha;
        public bool GuardaAutorizacion(int id_prestamo,DateTime fecha_autorizada, string autorizado, string cantidad_autorizada, int plazo, string monto_descontar, string razones) 
        {
            try
            {
                List<ClsParametros> lista = new List<ClsParametros>();
                lista.Add(new ClsParametros("@id_prestamo",id_prestamo.ToString()));
                lista.Add(new ClsParametros("@fecha_autorizado", fecha_autorizada.ToShortDateString()));
                lista.Add(new ClsParametros("@autorizado", autorizado));
                lista.Add(new ClsParametros("@cantidad_autorizada", cantidad_autorizada));
                lista.Add(new ClsParametros("@plazo", plazo.ToString()));
                lista.Add(new ClsParametros("@monto_descontar", monto_descontar));
                lista.Add(new ClsParametros("@razones", razones));
                DataTable datos = conexion.Datatable_standart("sp_RH_Prestamo_Add_Autorizacion", lista);
                DataRow[] array = new DataRow[datos.Rows.Count];
                datos.Rows.CopyTo(array, 0);
                object[] Info = datos.Rows[0].ItemArray;
                fecha = DateTime.Parse(Info[0].ToString().Trim());
                return true;
            }
            catch 
            {
                return false;
            }        
        }

        public bool ModificaAutorizacion(int id_prestamo, DateTime fecha_autorizada, string autorizado, string cantidad_autorizada, int plazo, string monto_descontar, string razones)
        {
            try
            {
                List<ClsParametros> lista = new List<ClsParametros>();
                lista.Add(new ClsParametros("@idprestamo", id_prestamo.ToString()));
                lista.Add(new ClsParametros("@fecha_autorizacion", fecha_autorizada.ToShortDateString()));
                lista.Add(new ClsParametros("@plazo", plazo.ToString()));
                lista.Add(new ClsParametros("@cantidad_autorizada", cantidad_autorizada));
                lista.Add(new ClsParametros("@cantidad_descontar", monto_descontar));
                lista.Add(new ClsParametros("@autorizado", autorizado));
                lista.Add(new ClsParametros("@razones", razones));
                DataTable datos = conexion.Datatable_standart("sp_RH_Prestamo_Modifica_Autorizacion", lista);
                DataRow[] array = new DataRow[datos.Rows.Count];
                datos.Rows.CopyTo(array, 0);
                object[] Info = datos.Rows[0].ItemArray;
                fecha = DateTime.Parse(Info[0].ToString().Trim());
                return true;
               
            }
            catch
            {
                return false;
            }
        }

        public bool AgregaPago(int id_prestamo, DateTime fecha_quincena, string monto_descontar)
        {
            try
            {
                List<ClsParametros> lista = new List<ClsParametros>();
                lista.Add(new ClsParametros("@id_prestamo", id_prestamo.ToString()));
                lista.Add(new ClsParametros("@fecha_pago", fecha_quincena.ToShortDateString()));
                lista.Add(new ClsParametros("@monto_pago", monto_descontar));

                DataTable datos = conexion.Datatable_standart("sp_RH_Prestamo_Add_Pago", lista);
                DataRow[] array = new DataRow[datos.Rows.Count];
                datos.Rows.CopyTo(array, 0);
                object[] Info = datos.Rows[0].ItemArray;
                id_actual = int.Parse(Info[0].ToString().Trim());
                fecha = DateTime.Parse(Info[1].ToString().Trim());
                return true;
            }
            catch
            {
                return false;
            }
        }


        public bool Agrega_Descuento(int id_empleado, DateTime fecha_quincena)
        {
            try
            {
                List<ClsParametros> lista = new List<ClsParametros>();
                lista.Add(new ClsParametros("@id_empleado", id_empleado.ToString()));
                lista.Add(new ClsParametros("@fecha_pago", fecha_quincena.ToShortDateString()));

                bool resp = conexion.Procedure_standart("sp_RH_Prestamo_Descuenta_Prestamo", lista);
                if (resp) return true;
                else return false;
            }
            catch
            {
                return false;
            }
        }

    }
}
